package com.cskaoyan.api;

/*
        // 最小优先级
        public final static int MIN_PRIORITY = 1;
        // 默认优先级
        public final static int NORM_PRIORITY = 5;
        // 最大优先级
        public final static int MAX_PRIORITY = 10;

        多线程的优先级
            public final int getPriority()
            public final void setPriority(int priority)

        注意事项：
            多线程的优先级的取值范围1 <= priority <=10
            线程的默认优先级为5
            然而……

        然而，我们在java语言中设置的线程优先级，它仅仅只能被看做是一种"建议"(对操作系统的建议)，
        实际上，操作系统本身，有它自己的一套线程优先级 (静态优先级 + 动态优先级)

         java官方： 线程优先级并非完全没有用，我们Thread的优先级，它具有统计意义，总的来说，高优先级的线程
         占用的cpu执行时间多一点，低优先级线程，占用cpu执行时间，短一点

         在实际开发中，不会使用线程优先级，控制线程的执行，没用


 */
public class Demo2Priority {

    public static void main(String[] args) {

        //第一个线程对象
        PriorityThread first = new PriorityThread();
        first.setName("first");

        //设置线程优先级
        first.setPriority(Thread.MIN_PRIORITY);

        // 获取线程的优先级
        //int priority = first.getPriority();
        //System.out.println(priority);


        // 第二个线程对象
        PriorityThread second = new PriorityThread();
        second.setName("second");

        // 设置最大优先级
        second.setPriority(Thread.MAX_PRIORITY);


        // 启动两个线程
        first.start();
        second.start();



    }
}

class PriorityThread extends Thread {


    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println(getName() + ": i = " + i);
        }
    }
}
